<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Rss extends CI_Controller {
	//Metodo constructor de la clase
	function __construct(){
		parent::__construct();
		
		//Cargo el modelo donde estan los datos de las configuraciones del sistema.
		$this->load->model('m_configuracion');
		
		//Cargo el modelo donde estan los datos de los clientes
		$this->load->model('m_cliente');
		
		//Cargo el modelo donde estan los datos de las publicaciones
		$this->load->model('m_publicacion');
	}
	
	//Devuelve la ultima publicacion cargada por el cliente en el grupo seleccionado
	function normal($hash=null, $grupo=null){
		//Busco el titulo de la web, etc
		$configuracion = $this->m_configuracion->getConfiguracion();
		
		//Primera comprobacion: Que se haya cargado la configuracion del sistema
		if($configuracion->num_rows()==1){
			//Segunda comprobacion: Que el hash sea alfanumerico y de longitud 20. Que el grupo sea numerico y entre 0 a 10 inclusives.
			if($hash != "" && strlen($hash) == 20 && is_numeric($grupo) && $grupo>=0 && $grupo<=10){
				//Busco al cliente para comprabar que existe
				$cliente = $this->m_cliente->getPorHash($hash);
				
				//Tercera comprobacion: Que el cliente sea existente y este activo
				if($cliente->num_rows() == 1 && $cliente->row()->estado==1){
					//Armo la restriccion segun el cliente seleccionado.
					$restriccion = " AND cliente.idCliente=".$cliente->row()->idCliente;
					
					//Agrego el grupo a la restriccion si es distinto de cero
					if($grupo!=0) $restriccion .= " AND publicacion.grupo=".$grupo;
					
					//Busco la ultima publicacion cargada segun las restricciones.
					$publicaciones = $this->m_publicacion->buscarActivos($restriccion, " idPublicacion DESC", " LIMIT 1");
					
					//Le paso la configuracion a la vista
					$datos['configuracion'] = $configuracion;
					
					//Le paso las publicaciones la vista(1 sola en este caso)
					$datos['publicaciones'] = $publicaciones;
					
					//Cargo la vista del rss
					$this->load->view('v_rss_normal', $datos);
				} else {
					//El cliente no existe.
					show_404();
				}
			} else {
				//No se han pasado los parametros minimos necesarios.
				show_404();
			}
		} else {
			//No se ha cargado la configuracion del sistema
			show_404();
		}
	}
	
	//Devuelve una publicacion aleatoria cargada por el cliente en el grupo seleccionado
	function aleatorio($hash=null, $grupo=null){
		//Busco el titulo de la web, etc
		$configuracion = $this->m_configuracion->getConfiguracion();
		
		//Primera comprobacion: Que se haya cargado la configuracion del sistema
		if($configuracion->num_rows()==1){
			//Segunda comprobacion: Que el hash sea alfanumerico y de longitud 20. Que el grupo sea numerico y entre 0 a 10 inclusive.
			if($hash != "" && strlen($hash) == 20 && is_numeric($grupo) && $grupo>=0 && $grupo<=10){
				//Busco al cliente para comprabar que existe
				$cliente = $this->m_cliente->getPorHash($hash);
				
				//Tercera comprobacion: Que el cliente sea existente y este activo.
				if($cliente->num_rows() == 1 && $cliente->row()->estado==1){
					//Armo la restriccion segun el cliente seleccionado.
					$restriccion = " AND cliente.idCliente=".$cliente->row()->idCliente;
					
					//Agrego el grupo a la restriccion si es distinto de cero
					if($grupo!=0) $restriccion .= " AND publicacion.grupo=".$grupo;
					
					//Busco una publicacion cualquiera entre todas las activas segun las restricciones.
					$publicaciones = $this->m_publicacion->buscarActivos($restriccion, " RAND()", " LIMIT 1");
					
					//Le paso la configuracion a la vista
					$datos['configuracion'] = $configuracion;
					
					//Le paso las publicaciones la vista (Una sola en este caso).
					$datos['publicaciones'] = $publicaciones;
					
					//Cargo la vista del rss
					$this->load->view('v_rss_aleatorio', $datos);
				} else {
					//El cliente no existe.
					show_404();
				}
			} else {
				//No se han pasado los parametros minimos necesarios.
				show_404();
			}
		} else {
			//No se ha cargado la configuracion del sistema
			show_404();
		}
	}
}